{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import os\n",
    "import json\n",
    "import pandas as pd\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns\n",
    "import glob "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>app_name</th>\n",
       "      <th>task</th>\n",
       "      <th>success</th>\n",
       "      <th>num_actions</th>\n",
       "      <th>num_critiques</th>\n",
       "      <th>num_visited_pages</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>Phonograph</td>\n",
       "      <td>Complete the AppIntro by clicking on the \"GET ...</td>\n",
       "      <td>True</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>Phonograph</td>\n",
       "      <td>Start playing a song from the song list.</td>\n",
       "      <td>True</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>Phonograph</td>\n",
       "      <td>Explore the album details by selecting an albu...</td>\n",
       "      <td>True</td>\n",
       "      <td>4</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>Phonograph</td>\n",
       "      <td>Edit the tags of the current album on the Albu...</td>\n",
       "      <td>True</td>\n",
       "      <td>13</td>\n",
       "      <td>3</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>Phonograph</td>\n",
       "      <td>Set a sleep timer for the current playing album.</td>\n",
       "      <td>True</td>\n",
       "      <td>4</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>542</th>\n",
       "      <td>Omni-Notes</td>\n",
       "      <td>Set a password for the notes to secure them.</td>\n",
       "      <td>False</td>\n",
       "      <td>13</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>543</th>\n",
       "      <td>Omni-Notes</td>\n",
       "      <td>Navigate to the Gallery page to view attached ...</td>\n",
       "      <td>False</td>\n",
       "      <td>13</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>544</th>\n",
       "      <td>Omni-Notes</td>\n",
       "      <td>Add a new tag \"Study Material\" to the note tit...</td>\n",
       "      <td>False</td>\n",
       "      <td>13</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>545</th>\n",
       "      <td>Omni-Notes</td>\n",
       "      <td>Add a new tag \"CS Studies\" to the note titled ...</td>\n",
       "      <td>False</td>\n",
       "      <td>13</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>546</th>\n",
       "      <td>Omni-Notes</td>\n",
       "      <td>Share the note titled \"Meeting Notes\" with a c...</td>\n",
       "      <td>False</td>\n",
       "      <td>12</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>547 rows × 6 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "       app_name                                               task  success  \\\n",
       "0    Phonograph  Complete the AppIntro by clicking on the \"GET ...     True   \n",
       "1    Phonograph           Start playing a song from the song list.     True   \n",
       "2    Phonograph  Explore the album details by selecting an albu...     True   \n",
       "3    Phonograph  Edit the tags of the current album on the Albu...     True   \n",
       "4    Phonograph   Set a sleep timer for the current playing album.     True   \n",
       "..          ...                                                ...      ...   \n",
       "542  Omni-Notes       Set a password for the notes to secure them.    False   \n",
       "543  Omni-Notes  Navigate to the Gallery page to view attached ...    False   \n",
       "544  Omni-Notes  Add a new tag \"Study Material\" to the note tit...    False   \n",
       "545  Omni-Notes  Add a new tag \"CS Studies\" to the note titled ...    False   \n",
       "546  Omni-Notes  Share the note titled \"Meeting Notes\" with a c...    False   \n",
       "\n",
       "     num_actions  num_critiques  num_visited_pages  \n",
       "0              1              0                  2  \n",
       "1              1              0                  1  \n",
       "2              4              1                  2  \n",
       "3             13              3                  3  \n",
       "4              4              1                  1  \n",
       "..           ...            ...                ...  \n",
       "542           13              3                  1  \n",
       "543           13              3                  1  \n",
       "544           13              3                  1  \n",
       "545           13              3                  1  \n",
       "546           12              3                  1  \n",
       "\n",
       "[547 rows x 6 columns]"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "def analyze_tasks(app_name, droidagent_result_dir):\n",
    "    task_row = []\n",
    "    with open(os.path.join(droidagent_result_dir, 'exp_data.json')) as f:\n",
    "        exp_data = json.load(f)\n",
    "\n",
    "    task_results = exp_data['task_results']\n",
    "    for task, task_data in task_results.items():\n",
    "        num_actions = 0\n",
    "        for entry in task_data['task_execution_history']:\n",
    "            if entry['type'] == 'ACTION' and entry['action_data'] is not None:\n",
    "                num_actions += 1\n",
    "\n",
    "        task_row.append({\n",
    "            'app_name': app_name,\n",
    "            'task': task,\n",
    "            'success': task_data['result'] == 'SUCCESS',\n",
    "            'num_actions': num_actions,\n",
    "            'num_critiques': task_data['num_critiques'],\n",
    "            'num_visited_pages': len(task_data['visited_pages_during_task']),\n",
    "        })\n",
    "\n",
    "    return task_row\n",
    "\n",
    "\n",
    "task_rows = []\n",
    "for app_name in os.listdir('../data/'):\n",
    "    if app_name == \"QuickChat\":\n",
    "        continue\n",
    "    if app_name == '.keep':\n",
    "        continue\n",
    "\n",
    "    result_path = os.path.join('../data/', app_name)\n",
    "\n",
    "    task_row = analyze_tasks(app_name, result_path)\n",
    "    task_rows.extend(task_row)\n",
    "\n",
    "task_df = pd.DataFrame(task_rows)\n",
    "task_df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['../task_assessment/manual_assessment_openlauncher.csv',\n",
       " '../task_assessment/manual_assessment_AntennaPod.csv',\n",
       " '../task_assessment/manual_assessment_commons.csv',\n",
       " '../task_assessment/manual_assessment_collect.csv',\n",
       " '../task_assessment/manual_assessment_osmeditor4android.csv',\n",
       " '../task_assessment/manual_assessment_Phonograph.csv',\n",
       " '../task_assessment/manual_assessment_APhotoManager.csv',\n",
       " '../task_assessment/manual_assessment_Scarlet-Notes.csv',\n",
       " '../task_assessment/manual_assessment_AnkiDroid.csv',\n",
       " '../task_assessment/manual_assessment_MyExpenses.csv',\n",
       " '../task_assessment/manual_assessment_Markor.csv',\n",
       " '../task_assessment/manual_assessment_MaterialFB.csv',\n",
       " '../task_assessment/manual_assessment_Omni-Notes.csv',\n",
       " '../task_assessment/manual_assessment_ActivityDiary.csv',\n",
       " '../task_assessment/manual_assessment_OpenTracks.csv']"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "manual_assessments = glob.glob('../task_assessment/manual_assessment*.csv')\n",
    "manual_assessments"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "def clean_nonascii_chars(text):\n",
    "    return ''.join([i if ord(i) < 128 else ' ' for i in text])\n",
    "\n",
    "task_df['task'] = task_df['task'].apply(clean_nonascii_chars)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/var/folders/n4/5pbkhgg90kn29trx7cx_t10c0000gn/T/ipykernel_31442/2509120802.py:16: FutureWarning: Setting an item of incompatible dtype is deprecated and will raise in a future error of pandas. Value 'True' has dtype incompatible with float64, please explicitly cast to a compatible dtype first.\n",
      "  task_df.loc[(task_df['app_name'] == app_name) & (task_df['task'] == task), 'manual_success'] = row['manual_result'].strip() == 'SUCCESS'\n",
      "/var/folders/n4/5pbkhgg90kn29trx7cx_t10c0000gn/T/ipykernel_31442/2509120802.py:17: FutureWarning: Setting an item of incompatible dtype is deprecated and will raise in a future error of pandas. Value 'True' has dtype incompatible with float64, please explicitly cast to a compatible dtype first.\n",
      "  task_df.loc[(task_df['app_name'] == app_name) & (task_df['task'] == task), 'is_possible'] = 'X' not in row['is_possible_task']\n",
      "/var/folders/n4/5pbkhgg90kn29trx7cx_t10c0000gn/T/ipykernel_31442/2509120802.py:18: FutureWarning: Setting an item of incompatible dtype is deprecated and will raise in a future error of pandas. Value 'False' has dtype incompatible with float64, please explicitly cast to a compatible dtype first.\n",
      "  task_df.loc[(task_df['app_name'] == app_name) & (task_df['task'] == task), 'duplicated'] = 'O' in row['duplicated']\n"
     ]
    }
   ],
   "source": [
    "for manual_label in manual_assessments:\n",
    "    app_name = os.path.basename(manual_label).split('.')[0].split('_')[-1]\n",
    "    if app_name == \"QuickChat\":\n",
    "        continue\n",
    "    df = pd.read_csv(manual_label, encoding = \"ISO-8859-1\")\n",
    "    if 'duplicated' not in df.columns:\n",
    "        print('No duplicated column: ', app_name)\n",
    "        break\n",
    "    # fill NaN with empty string \n",
    "    df = df.fillna('')\n",
    "    for i, row in df.iterrows():\n",
    "        task = clean_nonascii_chars(row['task'])\n",
    "        if len(task_df.loc[(task_df['app_name'] == app_name) & (task_df['task'] == task)]) == 0:\n",
    "            print('Task not found: ', app_name, task)\n",
    "\n",
    "        task_df.loc[(task_df['app_name'] == app_name) & (task_df['task'] == task), 'manual_success'] = row['manual_result'].strip() == 'SUCCESS'\n",
    "        task_df.loc[(task_df['app_name'] == app_name) & (task_df['task'] == task), 'is_possible'] = 'X' not in row['is_possible_task']\n",
    "        task_df.loc[(task_df['app_name'] == app_name) & (task_df['task'] == task), 'duplicated'] = 'O' in row['duplicated']\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>app_name</th>\n",
       "      <th>task</th>\n",
       "      <th>success</th>\n",
       "      <th>num_actions</th>\n",
       "      <th>num_critiques</th>\n",
       "      <th>num_visited_pages</th>\n",
       "      <th>manual_success</th>\n",
       "      <th>is_possible</th>\n",
       "      <th>duplicated</th>\n",
       "      <th>manual_success_unique</th>\n",
       "      <th>is_possible_unique</th>\n",
       "      <th>task_count_unique</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>Phonograph</td>\n",
       "      <td>Complete the AppIntro by clicking on the \"GET ...</td>\n",
       "      <td>True</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>Phonograph</td>\n",
       "      <td>Start playing a song from the song list.</td>\n",
       "      <td>True</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>Phonograph</td>\n",
       "      <td>Explore the album details by selecting an albu...</td>\n",
       "      <td>True</td>\n",
       "      <td>4</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>Phonograph</td>\n",
       "      <td>Edit the tags of the current album on the Albu...</td>\n",
       "      <td>True</td>\n",
       "      <td>13</td>\n",
       "      <td>3</td>\n",
       "      <td>3</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>Phonograph</td>\n",
       "      <td>Set a sleep timer for the current playing album.</td>\n",
       "      <td>True</td>\n",
       "      <td>4</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>542</th>\n",
       "      <td>Omni-Notes</td>\n",
       "      <td>Set a password for the notes to secure them.</td>\n",
       "      <td>False</td>\n",
       "      <td>13</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>543</th>\n",
       "      <td>Omni-Notes</td>\n",
       "      <td>Navigate to the Gallery page to view attached ...</td>\n",
       "      <td>False</td>\n",
       "      <td>13</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>544</th>\n",
       "      <td>Omni-Notes</td>\n",
       "      <td>Add a new tag \"Study Material\" to the note tit...</td>\n",
       "      <td>False</td>\n",
       "      <td>13</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>545</th>\n",
       "      <td>Omni-Notes</td>\n",
       "      <td>Add a new tag \"CS Studies\" to the note titled ...</td>\n",
       "      <td>False</td>\n",
       "      <td>13</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>546</th>\n",
       "      <td>Omni-Notes</td>\n",
       "      <td>Share the note titled \"Meeting Notes\" with a c...</td>\n",
       "      <td>False</td>\n",
       "      <td>12</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>547 rows × 12 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "       app_name                                               task  success  \\\n",
       "0    Phonograph  Complete the AppIntro by clicking on the \"GET ...     True   \n",
       "1    Phonograph           Start playing a song from the song list.     True   \n",
       "2    Phonograph  Explore the album details by selecting an albu...     True   \n",
       "3    Phonograph  Edit the tags of the current album on the Albu...     True   \n",
       "4    Phonograph   Set a sleep timer for the current playing album.     True   \n",
       "..          ...                                                ...      ...   \n",
       "542  Omni-Notes       Set a password for the notes to secure them.    False   \n",
       "543  Omni-Notes  Navigate to the Gallery page to view attached ...    False   \n",
       "544  Omni-Notes  Add a new tag \"Study Material\" to the note tit...    False   \n",
       "545  Omni-Notes  Add a new tag \"CS Studies\" to the note titled ...    False   \n",
       "546  Omni-Notes  Share the note titled \"Meeting Notes\" with a c...    False   \n",
       "\n",
       "     num_actions  num_critiques  num_visited_pages manual_success is_possible  \\\n",
       "0              1              0                  2           True        True   \n",
       "1              1              0                  1           True        True   \n",
       "2              4              1                  2           True        True   \n",
       "3             13              3                  3           True        True   \n",
       "4              4              1                  1           True        True   \n",
       "..           ...            ...                ...            ...         ...   \n",
       "542           13              3                  1           True        True   \n",
       "543           13              3                  1          False        True   \n",
       "544           13              3                  1          False        True   \n",
       "545           13              3                  1          False        True   \n",
       "546           12              3                  1          False        True   \n",
       "\n",
       "    duplicated  manual_success_unique  is_possible_unique task_count_unique  \n",
       "0        False                   True                True                 1  \n",
       "1        False                   True                True                 1  \n",
       "2        False                   True                True                 1  \n",
       "3        False                   True                True                 1  \n",
       "4        False                   True                True                 1  \n",
       "..         ...                    ...                 ...               ...  \n",
       "542      False                   True                True                 1  \n",
       "543      False                  False                True                 1  \n",
       "544       True                  False               False                 0  \n",
       "545       True                  False               False                 0  \n",
       "546      False                  False                True                 1  \n",
       "\n",
       "[547 rows x 12 columns]"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "task_df['manual_success_unique'] = task_df['manual_success'] & ~task_df['duplicated']\n",
    "task_df['is_possible_unique'] = task_df['is_possible'] & ~task_df['duplicated']\n",
    "task_df['task_count_unique'] = 1 -task_df['duplicated']\n",
    "task_df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "manual_success\n",
       "True     296\n",
       "False    251\n",
       "Name: count, dtype: int64"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "task_df.manual_success.value_counts()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>task</th>\n",
       "      <th>success</th>\n",
       "      <th>num_actions</th>\n",
       "      <th>num_critiques</th>\n",
       "      <th>num_visited_pages</th>\n",
       "      <th>manual_success</th>\n",
       "      <th>is_possible</th>\n",
       "      <th>duplicated</th>\n",
       "      <th>manual_success_unique</th>\n",
       "      <th>is_possible_unique</th>\n",
       "      <th>task_count_unique</th>\n",
       "      <th>task_count</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>app_name</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>APhotoManager</th>\n",
       "      <td>View the details of a photo.Edit the EXIF data...</td>\n",
       "      <td>15</td>\n",
       "      <td>348</td>\n",
       "      <td>74</td>\n",
       "      <td>59</td>\n",
       "      <td>11</td>\n",
       "      <td>36</td>\n",
       "      <td>19</td>\n",
       "      <td>8</td>\n",
       "      <td>17</td>\n",
       "      <td>22</td>\n",
       "      <td>41</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ActivityDiary</th>\n",
       "      <td>Add a new activity to the diary.Check the stat...</td>\n",
       "      <td>25</td>\n",
       "      <td>317</td>\n",
       "      <td>63</td>\n",
       "      <td>68</td>\n",
       "      <td>22</td>\n",
       "      <td>37</td>\n",
       "      <td>15</td>\n",
       "      <td>16</td>\n",
       "      <td>22</td>\n",
       "      <td>23</td>\n",
       "      <td>38</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>AnkiDroid</th>\n",
       "      <td>Synchronize the existing AnkiDroid account wit...</td>\n",
       "      <td>26</td>\n",
       "      <td>415</td>\n",
       "      <td>87</td>\n",
       "      <td>95</td>\n",
       "      <td>23</td>\n",
       "      <td>42</td>\n",
       "      <td>13</td>\n",
       "      <td>20</td>\n",
       "      <td>29</td>\n",
       "      <td>31</td>\n",
       "      <td>44</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>AntennaPod</th>\n",
       "      <td>Add a new podcast to the app.Mark an episode a...</td>\n",
       "      <td>29</td>\n",
       "      <td>331</td>\n",
       "      <td>67</td>\n",
       "      <td>53</td>\n",
       "      <td>24</td>\n",
       "      <td>36</td>\n",
       "      <td>14</td>\n",
       "      <td>19</td>\n",
       "      <td>27</td>\n",
       "      <td>31</td>\n",
       "      <td>45</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Markor</th>\n",
       "      <td>Navigate to the Main page by scrolling through...</td>\n",
       "      <td>12</td>\n",
       "      <td>255</td>\n",
       "      <td>52</td>\n",
       "      <td>36</td>\n",
       "      <td>19</td>\n",
       "      <td>26</td>\n",
       "      <td>4</td>\n",
       "      <td>15</td>\n",
       "      <td>22</td>\n",
       "      <td>24</td>\n",
       "      <td>28</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>MaterialFB</th>\n",
       "      <td>Log into the MaterialFBook app using the given...</td>\n",
       "      <td>9</td>\n",
       "      <td>248</td>\n",
       "      <td>53</td>\n",
       "      <td>30</td>\n",
       "      <td>9</td>\n",
       "      <td>16</td>\n",
       "      <td>4</td>\n",
       "      <td>8</td>\n",
       "      <td>12</td>\n",
       "      <td>20</td>\n",
       "      <td>24</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>MyExpenses</th>\n",
       "      <td>Change the app theme to Dark and set the trans...</td>\n",
       "      <td>21</td>\n",
       "      <td>358</td>\n",
       "      <td>74</td>\n",
       "      <td>102</td>\n",
       "      <td>23</td>\n",
       "      <td>37</td>\n",
       "      <td>16</td>\n",
       "      <td>15</td>\n",
       "      <td>22</td>\n",
       "      <td>26</td>\n",
       "      <td>42</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Omni-Notes</th>\n",
       "      <td>Create a new note in the Omni Notes Alpha app....</td>\n",
       "      <td>10</td>\n",
       "      <td>294</td>\n",
       "      <td>61</td>\n",
       "      <td>45</td>\n",
       "      <td>15</td>\n",
       "      <td>34</td>\n",
       "      <td>10</td>\n",
       "      <td>13</td>\n",
       "      <td>24</td>\n",
       "      <td>24</td>\n",
       "      <td>34</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>OpenTracks</th>\n",
       "      <td>Proceed to the next page from the Introduction...</td>\n",
       "      <td>31</td>\n",
       "      <td>287</td>\n",
       "      <td>54</td>\n",
       "      <td>105</td>\n",
       "      <td>32</td>\n",
       "      <td>37</td>\n",
       "      <td>15</td>\n",
       "      <td>21</td>\n",
       "      <td>22</td>\n",
       "      <td>23</td>\n",
       "      <td>38</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Phonograph</th>\n",
       "      <td>Complete the AppIntro by clicking on the \"GET ...</td>\n",
       "      <td>16</td>\n",
       "      <td>286</td>\n",
       "      <td>62</td>\n",
       "      <td>62</td>\n",
       "      <td>21</td>\n",
       "      <td>31</td>\n",
       "      <td>10</td>\n",
       "      <td>16</td>\n",
       "      <td>21</td>\n",
       "      <td>23</td>\n",
       "      <td>33</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Scarlet-Notes</th>\n",
       "      <td>Create a new note in the Scarlet Notes FD app....</td>\n",
       "      <td>7</td>\n",
       "      <td>216</td>\n",
       "      <td>49</td>\n",
       "      <td>33</td>\n",
       "      <td>6</td>\n",
       "      <td>20</td>\n",
       "      <td>6</td>\n",
       "      <td>6</td>\n",
       "      <td>14</td>\n",
       "      <td>14</td>\n",
       "      <td>20</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>collect</th>\n",
       "      <td>Start a new form.Visit the About page to learn...</td>\n",
       "      <td>27</td>\n",
       "      <td>412</td>\n",
       "      <td>113</td>\n",
       "      <td>112</td>\n",
       "      <td>29</td>\n",
       "      <td>41</td>\n",
       "      <td>15</td>\n",
       "      <td>18</td>\n",
       "      <td>26</td>\n",
       "      <td>38</td>\n",
       "      <td>53</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>commons</th>\n",
       "      <td>Bypass the tutorial and navigate to the Signup...</td>\n",
       "      <td>14</td>\n",
       "      <td>272</td>\n",
       "      <td>56</td>\n",
       "      <td>63</td>\n",
       "      <td>22</td>\n",
       "      <td>25</td>\n",
       "      <td>4</td>\n",
       "      <td>19</td>\n",
       "      <td>21</td>\n",
       "      <td>28</td>\n",
       "      <td>32</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>openlauncher</th>\n",
       "      <td>Proceed to the Home page of the OpenLauncher a...</td>\n",
       "      <td>10</td>\n",
       "      <td>348</td>\n",
       "      <td>80</td>\n",
       "      <td>39</td>\n",
       "      <td>12</td>\n",
       "      <td>21</td>\n",
       "      <td>19</td>\n",
       "      <td>5</td>\n",
       "      <td>10</td>\n",
       "      <td>12</td>\n",
       "      <td>31</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>osmeditor4android</th>\n",
       "      <td>Read the introduction of the Vespucci app.Down...</td>\n",
       "      <td>25</td>\n",
       "      <td>364</td>\n",
       "      <td>76</td>\n",
       "      <td>70</td>\n",
       "      <td>28</td>\n",
       "      <td>36</td>\n",
       "      <td>9</td>\n",
       "      <td>22</td>\n",
       "      <td>28</td>\n",
       "      <td>35</td>\n",
       "      <td>44</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                                                task  success  \\\n",
       "app_name                                                                        \n",
       "APhotoManager      View the details of a photo.Edit the EXIF data...       15   \n",
       "ActivityDiary      Add a new activity to the diary.Check the stat...       25   \n",
       "AnkiDroid          Synchronize the existing AnkiDroid account wit...       26   \n",
       "AntennaPod         Add a new podcast to the app.Mark an episode a...       29   \n",
       "Markor             Navigate to the Main page by scrolling through...       12   \n",
       "MaterialFB         Log into the MaterialFBook app using the given...        9   \n",
       "MyExpenses         Change the app theme to Dark and set the trans...       21   \n",
       "Omni-Notes         Create a new note in the Omni Notes Alpha app....       10   \n",
       "OpenTracks         Proceed to the next page from the Introduction...       31   \n",
       "Phonograph         Complete the AppIntro by clicking on the \"GET ...       16   \n",
       "Scarlet-Notes      Create a new note in the Scarlet Notes FD app....        7   \n",
       "collect            Start a new form.Visit the About page to learn...       27   \n",
       "commons            Bypass the tutorial and navigate to the Signup...       14   \n",
       "openlauncher       Proceed to the Home page of the OpenLauncher a...       10   \n",
       "osmeditor4android  Read the introduction of the Vespucci app.Down...       25   \n",
       "\n",
       "                   num_actions  num_critiques  num_visited_pages  \\\n",
       "app_name                                                           \n",
       "APhotoManager              348             74                 59   \n",
       "ActivityDiary              317             63                 68   \n",
       "AnkiDroid                  415             87                 95   \n",
       "AntennaPod                 331             67                 53   \n",
       "Markor                     255             52                 36   \n",
       "MaterialFB                 248             53                 30   \n",
       "MyExpenses                 358             74                102   \n",
       "Omni-Notes                 294             61                 45   \n",
       "OpenTracks                 287             54                105   \n",
       "Phonograph                 286             62                 62   \n",
       "Scarlet-Notes              216             49                 33   \n",
       "collect                    412            113                112   \n",
       "commons                    272             56                 63   \n",
       "openlauncher               348             80                 39   \n",
       "osmeditor4android          364             76                 70   \n",
       "\n",
       "                  manual_success is_possible duplicated  \\\n",
       "app_name                                                  \n",
       "APhotoManager                 11          36         19   \n",
       "ActivityDiary                 22          37         15   \n",
       "AnkiDroid                     23          42         13   \n",
       "AntennaPod                    24          36         14   \n",
       "Markor                        19          26          4   \n",
       "MaterialFB                     9          16          4   \n",
       "MyExpenses                    23          37         16   \n",
       "Omni-Notes                    15          34         10   \n",
       "OpenTracks                    32          37         15   \n",
       "Phonograph                    21          31         10   \n",
       "Scarlet-Notes                  6          20          6   \n",
       "collect                       29          41         15   \n",
       "commons                       22          25          4   \n",
       "openlauncher                  12          21         19   \n",
       "osmeditor4android             28          36          9   \n",
       "\n",
       "                   manual_success_unique  is_possible_unique  \\\n",
       "app_name                                                       \n",
       "APhotoManager                          8                  17   \n",
       "ActivityDiary                         16                  22   \n",
       "AnkiDroid                             20                  29   \n",
       "AntennaPod                            19                  27   \n",
       "Markor                                15                  22   \n",
       "MaterialFB                             8                  12   \n",
       "MyExpenses                            15                  22   \n",
       "Omni-Notes                            13                  24   \n",
       "OpenTracks                            21                  22   \n",
       "Phonograph                            16                  21   \n",
       "Scarlet-Notes                          6                  14   \n",
       "collect                               18                  26   \n",
       "commons                               19                  21   \n",
       "openlauncher                           5                  10   \n",
       "osmeditor4android                     22                  28   \n",
       "\n",
       "                  task_count_unique  task_count  \n",
       "app_name                                         \n",
       "APhotoManager                    22          41  \n",
       "ActivityDiary                    23          38  \n",
       "AnkiDroid                        31          44  \n",
       "AntennaPod                       31          45  \n",
       "Markor                           24          28  \n",
       "MaterialFB                       20          24  \n",
       "MyExpenses                       26          42  \n",
       "Omni-Notes                       24          34  \n",
       "OpenTracks                       23          38  \n",
       "Phonograph                       23          33  \n",
       "Scarlet-Notes                    14          20  \n",
       "collect                          38          53  \n",
       "commons                          28          32  \n",
       "openlauncher                     12          31  \n",
       "osmeditor4android                35          44  "
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# assign task count \n",
    "task_df['task_count'] = 1\n",
    "\n",
    "task_df_agg = task_df.groupby('app_name').sum()\n",
    "task_df_agg"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>app_name</th>\n",
       "      <th>task_count</th>\n",
       "      <th>percentage</th>\n",
       "      <th>type</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>APhotoManager</td>\n",
       "      <td>41</td>\n",
       "      <td>100.000000</td>\n",
       "      <td>Total</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>APhotoManager</td>\n",
       "      <td>22</td>\n",
       "      <td>53.658537</td>\n",
       "      <td>Total (Unique)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>APhotoManager</td>\n",
       "      <td>17</td>\n",
       "      <td>77.272727</td>\n",
       "      <td>Possible</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>APhotoManager</td>\n",
       "      <td>8</td>\n",
       "      <td>36.363636</td>\n",
       "      <td>Successful</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>ActivityDiary</td>\n",
       "      <td>38</td>\n",
       "      <td>100.000000</td>\n",
       "      <td>Total</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>ActivityDiary</td>\n",
       "      <td>23</td>\n",
       "      <td>60.526316</td>\n",
       "      <td>Total (Unique)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>ActivityDiary</td>\n",
       "      <td>22</td>\n",
       "      <td>95.652174</td>\n",
       "      <td>Possible</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>ActivityDiary</td>\n",
       "      <td>16</td>\n",
       "      <td>69.565217</td>\n",
       "      <td>Successful</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>AnkiDroid</td>\n",
       "      <td>44</td>\n",
       "      <td>100.000000</td>\n",
       "      <td>Total</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>AnkiDroid</td>\n",
       "      <td>31</td>\n",
       "      <td>70.454545</td>\n",
       "      <td>Total (Unique)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>AnkiDroid</td>\n",
       "      <td>29</td>\n",
       "      <td>93.548387</td>\n",
       "      <td>Possible</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>AnkiDroid</td>\n",
       "      <td>20</td>\n",
       "      <td>64.516129</td>\n",
       "      <td>Successful</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>AntennaPod</td>\n",
       "      <td>45</td>\n",
       "      <td>100.000000</td>\n",
       "      <td>Total</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>AntennaPod</td>\n",
       "      <td>31</td>\n",
       "      <td>68.888889</td>\n",
       "      <td>Total (Unique)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>AntennaPod</td>\n",
       "      <td>27</td>\n",
       "      <td>87.096774</td>\n",
       "      <td>Possible</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>AntennaPod</td>\n",
       "      <td>19</td>\n",
       "      <td>61.290323</td>\n",
       "      <td>Successful</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>Markor</td>\n",
       "      <td>28</td>\n",
       "      <td>100.000000</td>\n",
       "      <td>Total</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>Markor</td>\n",
       "      <td>24</td>\n",
       "      <td>85.714286</td>\n",
       "      <td>Total (Unique)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>Markor</td>\n",
       "      <td>22</td>\n",
       "      <td>91.666667</td>\n",
       "      <td>Possible</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>Markor</td>\n",
       "      <td>15</td>\n",
       "      <td>62.500000</td>\n",
       "      <td>Successful</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20</th>\n",
       "      <td>MaterialFB</td>\n",
       "      <td>24</td>\n",
       "      <td>100.000000</td>\n",
       "      <td>Total</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>21</th>\n",
       "      <td>MaterialFB</td>\n",
       "      <td>20</td>\n",
       "      <td>83.333333</td>\n",
       "      <td>Total (Unique)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>22</th>\n",
       "      <td>MaterialFB</td>\n",
       "      <td>12</td>\n",
       "      <td>60.000000</td>\n",
       "      <td>Possible</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>23</th>\n",
       "      <td>MaterialFB</td>\n",
       "      <td>8</td>\n",
       "      <td>40.000000</td>\n",
       "      <td>Successful</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>24</th>\n",
       "      <td>MyExpenses</td>\n",
       "      <td>42</td>\n",
       "      <td>100.000000</td>\n",
       "      <td>Total</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25</th>\n",
       "      <td>MyExpenses</td>\n",
       "      <td>26</td>\n",
       "      <td>61.904762</td>\n",
       "      <td>Total (Unique)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>26</th>\n",
       "      <td>MyExpenses</td>\n",
       "      <td>22</td>\n",
       "      <td>84.615385</td>\n",
       "      <td>Possible</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27</th>\n",
       "      <td>MyExpenses</td>\n",
       "      <td>15</td>\n",
       "      <td>57.692308</td>\n",
       "      <td>Successful</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>28</th>\n",
       "      <td>Omni-Notes</td>\n",
       "      <td>34</td>\n",
       "      <td>100.000000</td>\n",
       "      <td>Total</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>29</th>\n",
       "      <td>Omni-Notes</td>\n",
       "      <td>24</td>\n",
       "      <td>70.588235</td>\n",
       "      <td>Total (Unique)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>30</th>\n",
       "      <td>Omni-Notes</td>\n",
       "      <td>24</td>\n",
       "      <td>100.000000</td>\n",
       "      <td>Possible</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>31</th>\n",
       "      <td>Omni-Notes</td>\n",
       "      <td>13</td>\n",
       "      <td>54.166667</td>\n",
       "      <td>Successful</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>32</th>\n",
       "      <td>OpenTracks</td>\n",
       "      <td>38</td>\n",
       "      <td>100.000000</td>\n",
       "      <td>Total</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>33</th>\n",
       "      <td>OpenTracks</td>\n",
       "      <td>23</td>\n",
       "      <td>60.526316</td>\n",
       "      <td>Total (Unique)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>34</th>\n",
       "      <td>OpenTracks</td>\n",
       "      <td>22</td>\n",
       "      <td>95.652174</td>\n",
       "      <td>Possible</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>35</th>\n",
       "      <td>OpenTracks</td>\n",
       "      <td>21</td>\n",
       "      <td>91.304348</td>\n",
       "      <td>Successful</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>36</th>\n",
       "      <td>Phonograph</td>\n",
       "      <td>33</td>\n",
       "      <td>100.000000</td>\n",
       "      <td>Total</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>37</th>\n",
       "      <td>Phonograph</td>\n",
       "      <td>23</td>\n",
       "      <td>69.696970</td>\n",
       "      <td>Total (Unique)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>38</th>\n",
       "      <td>Phonograph</td>\n",
       "      <td>21</td>\n",
       "      <td>91.304348</td>\n",
       "      <td>Possible</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>39</th>\n",
       "      <td>Phonograph</td>\n",
       "      <td>16</td>\n",
       "      <td>69.565217</td>\n",
       "      <td>Successful</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>40</th>\n",
       "      <td>Scarlet-Notes</td>\n",
       "      <td>20</td>\n",
       "      <td>100.000000</td>\n",
       "      <td>Total</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>41</th>\n",
       "      <td>Scarlet-Notes</td>\n",
       "      <td>14</td>\n",
       "      <td>70.000000</td>\n",
       "      <td>Total (Unique)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>42</th>\n",
       "      <td>Scarlet-Notes</td>\n",
       "      <td>14</td>\n",
       "      <td>100.000000</td>\n",
       "      <td>Possible</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>43</th>\n",
       "      <td>Scarlet-Notes</td>\n",
       "      <td>6</td>\n",
       "      <td>42.857143</td>\n",
       "      <td>Successful</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>44</th>\n",
       "      <td>collect</td>\n",
       "      <td>53</td>\n",
       "      <td>100.000000</td>\n",
       "      <td>Total</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>45</th>\n",
       "      <td>collect</td>\n",
       "      <td>38</td>\n",
       "      <td>71.698113</td>\n",
       "      <td>Total (Unique)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>46</th>\n",
       "      <td>collect</td>\n",
       "      <td>26</td>\n",
       "      <td>68.421053</td>\n",
       "      <td>Possible</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>47</th>\n",
       "      <td>collect</td>\n",
       "      <td>18</td>\n",
       "      <td>47.368421</td>\n",
       "      <td>Successful</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>48</th>\n",
       "      <td>commons</td>\n",
       "      <td>32</td>\n",
       "      <td>100.000000</td>\n",
       "      <td>Total</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>49</th>\n",
       "      <td>commons</td>\n",
       "      <td>28</td>\n",
       "      <td>87.500000</td>\n",
       "      <td>Total (Unique)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50</th>\n",
       "      <td>commons</td>\n",
       "      <td>21</td>\n",
       "      <td>75.000000</td>\n",
       "      <td>Possible</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>51</th>\n",
       "      <td>commons</td>\n",
       "      <td>19</td>\n",
       "      <td>67.857143</td>\n",
       "      <td>Successful</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>52</th>\n",
       "      <td>openlauncher</td>\n",
       "      <td>31</td>\n",
       "      <td>100.000000</td>\n",
       "      <td>Total</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>53</th>\n",
       "      <td>openlauncher</td>\n",
       "      <td>12</td>\n",
       "      <td>38.709677</td>\n",
       "      <td>Total (Unique)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>54</th>\n",
       "      <td>openlauncher</td>\n",
       "      <td>10</td>\n",
       "      <td>83.333333</td>\n",
       "      <td>Possible</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>55</th>\n",
       "      <td>openlauncher</td>\n",
       "      <td>5</td>\n",
       "      <td>41.666667</td>\n",
       "      <td>Successful</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>56</th>\n",
       "      <td>osmeditor4android</td>\n",
       "      <td>44</td>\n",
       "      <td>100.000000</td>\n",
       "      <td>Total</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>57</th>\n",
       "      <td>osmeditor4android</td>\n",
       "      <td>35</td>\n",
       "      <td>79.545455</td>\n",
       "      <td>Total (Unique)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>58</th>\n",
       "      <td>osmeditor4android</td>\n",
       "      <td>28</td>\n",
       "      <td>80.000000</td>\n",
       "      <td>Possible</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>59</th>\n",
       "      <td>osmeditor4android</td>\n",
       "      <td>22</td>\n",
       "      <td>62.857143</td>\n",
       "      <td>Successful</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             app_name  task_count  percentage            type\n",
       "0       APhotoManager          41  100.000000           Total\n",
       "1       APhotoManager          22   53.658537  Total (Unique)\n",
       "2       APhotoManager          17   77.272727        Possible\n",
       "3       APhotoManager           8   36.363636      Successful\n",
       "4       ActivityDiary          38  100.000000           Total\n",
       "5       ActivityDiary          23   60.526316  Total (Unique)\n",
       "6       ActivityDiary          22   95.652174        Possible\n",
       "7       ActivityDiary          16   69.565217      Successful\n",
       "8           AnkiDroid          44  100.000000           Total\n",
       "9           AnkiDroid          31   70.454545  Total (Unique)\n",
       "10          AnkiDroid          29   93.548387        Possible\n",
       "11          AnkiDroid          20   64.516129      Successful\n",
       "12         AntennaPod          45  100.000000           Total\n",
       "13         AntennaPod          31   68.888889  Total (Unique)\n",
       "14         AntennaPod          27   87.096774        Possible\n",
       "15         AntennaPod          19   61.290323      Successful\n",
       "16             Markor          28  100.000000           Total\n",
       "17             Markor          24   85.714286  Total (Unique)\n",
       "18             Markor          22   91.666667        Possible\n",
       "19             Markor          15   62.500000      Successful\n",
       "20         MaterialFB          24  100.000000           Total\n",
       "21         MaterialFB          20   83.333333  Total (Unique)\n",
       "22         MaterialFB          12   60.000000        Possible\n",
       "23         MaterialFB           8   40.000000      Successful\n",
       "24         MyExpenses          42  100.000000           Total\n",
       "25         MyExpenses          26   61.904762  Total (Unique)\n",
       "26         MyExpenses          22   84.615385        Possible\n",
       "27         MyExpenses          15   57.692308      Successful\n",
       "28         Omni-Notes          34  100.000000           Total\n",
       "29         Omni-Notes          24   70.588235  Total (Unique)\n",
       "30         Omni-Notes          24  100.000000        Possible\n",
       "31         Omni-Notes          13   54.166667      Successful\n",
       "32         OpenTracks          38  100.000000           Total\n",
       "33         OpenTracks          23   60.526316  Total (Unique)\n",
       "34         OpenTracks          22   95.652174        Possible\n",
       "35         OpenTracks          21   91.304348      Successful\n",
       "36         Phonograph          33  100.000000           Total\n",
       "37         Phonograph          23   69.696970  Total (Unique)\n",
       "38         Phonograph          21   91.304348        Possible\n",
       "39         Phonograph          16   69.565217      Successful\n",
       "40      Scarlet-Notes          20  100.000000           Total\n",
       "41      Scarlet-Notes          14   70.000000  Total (Unique)\n",
       "42      Scarlet-Notes          14  100.000000        Possible\n",
       "43      Scarlet-Notes           6   42.857143      Successful\n",
       "44            collect          53  100.000000           Total\n",
       "45            collect          38   71.698113  Total (Unique)\n",
       "46            collect          26   68.421053        Possible\n",
       "47            collect          18   47.368421      Successful\n",
       "48            commons          32  100.000000           Total\n",
       "49            commons          28   87.500000  Total (Unique)\n",
       "50            commons          21   75.000000        Possible\n",
       "51            commons          19   67.857143      Successful\n",
       "52       openlauncher          31  100.000000           Total\n",
       "53       openlauncher          12   38.709677  Total (Unique)\n",
       "54       openlauncher          10   83.333333        Possible\n",
       "55       openlauncher           5   41.666667      Successful\n",
       "56  osmeditor4android          44  100.000000           Total\n",
       "57  osmeditor4android          35   79.545455  Total (Unique)\n",
       "58  osmeditor4android          28   80.000000        Possible\n",
       "59  osmeditor4android          22   62.857143      Successful"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "task_df_agg.reset_index(inplace=True)\n",
    "rows = []\n",
    "\n",
    "for i, row in task_df_agg.iterrows():\n",
    "    rows.append({\n",
    "        'app_name': row['app_name'],\n",
    "        'task_count': row['task_count'],\n",
    "        'percentage': 100,\n",
    "        'type': 'Total'\n",
    "    })\n",
    "\n",
    "    rows.append({\n",
    "        'app_name': row['app_name'],\n",
    "        'task_count': row['task_count_unique'],\n",
    "        'percentage': row['task_count_unique'] / row['task_count'] * 100,\n",
    "        'type': 'Total (Unique)'\n",
    "    })\n",
    "\n",
    "    rows.append({\n",
    "        'app_name': row['app_name'],\n",
    "        'task_count': row['is_possible_unique'],\n",
    "        'percentage': row['is_possible_unique'] / row['task_count_unique'] * 100,\n",
    "        'type': 'Possible'\n",
    "    })\n",
    "\n",
    "    rows.append({\n",
    "        'app_name': row['app_name'],\n",
    "        'task_count': row['manual_success_unique'],\n",
    "        'percentage': row['manual_success_unique'] / row['task_count_unique'] * 100,\n",
    "        'type': 'Successful'\n",
    "    })\n",
    "\n",
    "task_df_agg = df = pd.DataFrame(rows)\n",
    "task_df_agg"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/var/folders/n4/5pbkhgg90kn29trx7cx_t10c0000gn/T/ipykernel_31442/303648395.py:7: UserWarning: set_ticklabels() should only be used with a fixed number of ticks, i.e. after set_ticks() or using a FixedLocator.\n",
      "  ax.set_xticklabels(ax.get_xticklabels(), rotation=80, ha=\"right\")\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x1346c8a00>"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA+sAAAGzCAYAAABXQob6AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAAD7HElEQVR4nOzdd1yV9f//8cdhCQgiiICKAwe4R+40B6k5S7QcudIss8xKP5U7t5Wz1FIzNdMcuUepabnK3HvvgQIqKCAg6/z+8HfOV3KBouccfN5vN291rut9ruv1PufiOtfrut7DYDQajYiIiIiIiIiI1bCzdAAiIiIiIiIikpaSdREREREREREro2RdRERERERExMooWRcRERERERGxMkrWRURERERERKyMknURERERERERK6NkXURERERERMTKKFkXERERERERsTJK1kVERERERESsjJJ1EZF0WrJkCUFBQdSsWZObN28+sNzEiRMJCgri119/fYbR3csU7/jx4y0ax5PYtGkTzZo1o0yZMlStWpUtW7bcU8ZUz/T+mzhx4lOJNSgoiFq1aj2VbduKXbt2mT/nv/76y9LhiIiI2DQHSwcgImJrrl69yvDhwxk9erSlQ8nSbty4wUcffURSUhIhISHkyJGDwMDAe8qVKFGCHj16pFm2Y8cOduzYQZUqVahSpUqadf99LZln8eLFODo6YjQamT9/PnXr1rV0SCIiIjZLybqIyGNYsWIFDRs25OWXX7Z0KFnWqVOniI+Pp06dOgwfPvyB5UqUKEGJEiXSLJs4caI5Wf/www+fdqgC3Lp1izVr1lCpUiVSU1PZvHkzly9fJm/evJYOTURExCapGbyISAaVKlUKgC+++IIbN25YNpgsLDExEQBPT08LRyLp8dtvvxEXF8dLL73EK6+8QmpqKgsWLLB0WCIiIjZLybqISAa99NJLNG/e3NwcPj0e1o/9f//7H0FBQWzfvt28LDg4mNdee41Lly7x8ccfU7lyZSpUqMDbb7/N6dOnSUlJ4ccff+SVV16hXLlyNGrUiDlz5jxw/7/88guvvPIKZcqUoUGDBkyaNInbt2/fUy46OpoxY8bQoEEDSpcuTbVq1ejZsyfHjh1LU+7SpUsEBQUxdOhQJk2aROXKlXnhhRf4+uuvH/lZLF++nDZt2lChQgXKlStHSEgIP/30E8nJyWnq37lz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M9rMR56trPT9ZKW6iHXTsSYioHOBPDvWcqypCbxYM4sm62PGjCEhISHNsgYNGtCzZ09effVVli9fzvz580lJScHe3h6Af//9l4CAAHLlymWJkEVERERERESeOotOGO7r60vBggXT/APIlSsXvr6+tGzZktjYWPr378+pU6dYsmQJs2bNolu3bpYMW0REREREROSpsmiy/ii5cuVi+vTpnD17lpCQECZNmsRnn31GSEiIpUMTEREREREReWosPhr8fx0/fjzN67Jly7JgwQILRSMiIiIiIpI1rFixgjlz5nDixAkMBgOFCxfmjTfeoE2bNpYOLVNs2rSJIUOGcPXqVT799FM6duz40PJLliyhb9++9+Sg1sLqknURERERERFrZ0w1YrB79gPUPe5+Fy1axIgRI+jfvz8VK1bEaDTy999/M3z4cK5du0aPHj2eQrTP1oQJEwgICGD27NnkzJnT0uE8MSXrIiIiIiIiGWSwMxC2/ihJUXHPbJ+Onq741SvxWO/95ZdfaNmyJa+//rp5WeHChQkPD2f27NlZIlm/efMmdevWxd/f39KhZAqr7rMujy/VmJqp5UREJPNk5Nyr87Q8C+5OzhhT03espbecyPMgKSqO29din9m/J7kxYGdnx969e7l582aa5e+++66523FwcDATJ05Ms/6/yw4cOMBbb71FhQoVePHFF/niiy+Ij48HwGg08tNPP/HKK69QtmxZmjRpwqpVq8zvDQ8P55NPPqFSpUpUrVqV9957j3PnzpnXX79+nZ49e1K1alXKli1LmzZt2LFjR5p9v/nmm1SoUIHKlSvz4YcfcvnyZQCCgoIIDQ1l8uTJBAUFpbs+1kxP1rMoO4Mdc/dvITz25gPL+Lp50K7cS88wKhERgfSdo0HnaXl2XBydMNjZcXP9PFKiIh5Yzt7TB496bZ9hZCKSWbp27conn3xCrVq1qFq1KpUqVaJatWqUKVOGHDlypGsbFy9epFOnTtSvX58FCxYQExPD559/zpAhQ/jyyy+ZPn06kydPpn///lStWpVNmzbx2Wef4e3tTdmyZenQoQOlSpVizpw52NnZMXPmTFq1asXKlSvx9fVl8ODBJCYmMmfOHJycnJgyZQrvv/8+mzdvJlu2bHTr1o1WrVrx1VdfER0dzaBBg+jXrx+zZs1i69atvP766zRu3JguXbo85U/z2VCy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",
      "text/plain": [
       "<Figure size 1000x300 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# bar graph (is_possible, task_count)\n",
    "\n",
    "sns.set(style=\"whitegrid\")\n",
    "# figure size\n",
    "plt.figure(figsize=(10, 3))\n",
    "ax = sns.barplot(x=\"app_name\", y=\"task_count\", hue=\"type\", data=task_df_agg, palette=\"Set2\")\n",
    "ax.set_xticklabels(ax.get_xticklabels(), rotation=80, ha=\"right\")\n",
    "ax.set_xlabel('App Name')\n",
    "ax.set_ylabel('# of Tasks')\n",
    "ax.set_title('Number of Tasks per App', fontsize=15)\n",
    "# change legend position\n",
    "plt.legend(bbox_to_anchor=(1.01, 1), loc=2, borderaxespad=0.)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>type</th>\n",
       "      <th>task_count</th>\n",
       "      <th>percentage</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>Total</td>\n",
       "      <td>36.466667</td>\n",
       "      <td>100.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>Total (Unique)</td>\n",
       "      <td>24.933333</td>\n",
       "      <td>68.849696</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>Possible</td>\n",
       "      <td>21.133333</td>\n",
       "      <td>85.570868</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>Successful</td>\n",
       "      <td>14.733333</td>\n",
       "      <td>57.971357</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             type  task_count  percentage\n",
       "2           Total   36.466667  100.000000\n",
       "3  Total (Unique)   24.933333   68.849696\n",
       "0        Possible   21.133333   85.570868\n",
       "1      Successful   14.733333   57.971357"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "task_df_mean = task_df_agg.groupby('type')[['task_count', 'percentage']].mean()\n",
    "\n",
    "task_df_mean.reset_index(inplace=True)\n",
    "\n",
    "# reorder rows \n",
    "task_df_mean = task_df_mean.reindex([2, 3, 0, 1])\n",
    "task_df_mean"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>type</th>\n",
       "      <th>task_count</th>\n",
       "      <th>percentage</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>Total</td>\n",
       "      <td>547</td>\n",
       "      <td>1500.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>Total (Unique)</td>\n",
       "      <td>374</td>\n",
       "      <td>1032.745434</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>Possible</td>\n",
       "      <td>317</td>\n",
       "      <td>1283.563021</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>Successful</td>\n",
       "      <td>221</td>\n",
       "      <td>869.570361</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             type  task_count   percentage\n",
       "2           Total         547  1500.000000\n",
       "3  Total (Unique)         374  1032.745434\n",
       "0        Possible         317  1283.563021\n",
       "1      Successful         221   869.570361"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "task_df_sum = task_df_agg.groupby('type')[['task_count', 'percentage']].sum()\n",
    "\n",
    "task_df_sum.reset_index(inplace=True)\n",
    "\n",
    "# reorder rows \n",
    "task_df_sum = task_df_sum.reindex([2, 3, 0, 1])\n",
    "task_df_sum"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.8475935828877005"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "task_df_sum[task_df_sum['type'] == 'Possible'].task_count.values[0] / task_df_sum[task_df_sum['type'] == 'Total (Unique)'].task_count.values[0]\n",
    "#317/374"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.5909090909090909"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "task_df_sum[task_df_sum['type'] == 'Successful'].task_count.values[0] / task_df_sum[task_df_sum['type'] == 'Total (Unique)'].task_count.values[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/var/folders/n4/5pbkhgg90kn29trx7cx_t10c0000gn/T/ipykernel_31442/751751120.py:12: FutureWarning: \n",
      "\n",
      "Passing `palette` without assigning `hue` is deprecated and will be removed in v0.14.0. Assign the `x` variable to `hue` and set `legend=False` for the same effect.\n",
      "\n",
      "  ax = sns.barplot(x=\"type\", y=\"task_count\", data=task_df_agg, palette=\"Set2\", order=['Total (Unique)', 'Possible', 'Completed'], errorbar=\"sd\", legend=False)\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 400x200 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Need aggregated results (all apps)\n",
    "\n",
    "# bar graph (manual_success, task_count)\n",
    "plt.figure(figsize=(4, 2))\n",
    "\n",
    "# text size\n",
    "sns.set(font_scale=1.0)\n",
    "sns.set_style(\"whitegrid\")\n",
    "\n",
    "# rename type name \"Successful\" to \"Completed\"\n",
    "task_df_agg['type'] = task_df_agg['type'].replace('Successful', 'Completed')\n",
    "ax = sns.barplot(x=\"type\", y=\"task_count\", data=task_df_agg, palette=\"Set2\", order=['Total (Unique)', 'Possible', 'Completed'], errorbar=\"sd\", legend=False)\n",
    "ax.set_xlabel('', fontsize=10)\n",
    "ax.set_ylabel('# of Tasks', fontsize=10)\n",
    "ax.set_ylim(10, 35)\n",
    "ax.set_title('Manual Assessment of Tasks')\n",
    "\n",
    "plt.tight_layout()\n",
    "plt.savefig('./figures/RQ2_task_manual_assessment.pdf')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Collecting scikit-learn\n",
      "  Downloading scikit_learn-1.3.2-cp310-cp310-macosx_12_0_arm64.whl (9.5 MB)\n",
      "\u001b[2K     \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m9.5/9.5 MB\u001b[0m \u001b[31m8.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0mm eta \u001b[36m0:00:01\u001b[0m0:01\u001b[0m:01\u001b[0m\n",
      "\u001b[?25hCollecting scipy>=1.5.0\n",
      "  Downloading scipy-1.11.3-cp310-cp310-macosx_12_0_arm64.whl (29.8 MB)\n",
      "\u001b[2K     \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m29.8/29.8 MB\u001b[0m \u001b[31m7.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0mm eta \u001b[36m0:00:01\u001b[0m[36m0:00:01\u001b[0m\n",
      "\u001b[?25hCollecting joblib>=1.1.1\n",
      "  Using cached joblib-1.3.2-py3-none-any.whl (302 kB)\n",
      "Collecting threadpoolctl>=2.0.0\n",
      "  Using cached threadpoolctl-3.2.0-py3-none-any.whl (15 kB)\n",
      "Requirement already satisfied: numpy<2.0,>=1.17.3 in /Users/greenmon/.pyenv/versions/3.10.10/envs/droidagent/lib/python3.10/site-packages (from scikit-learn) (1.26.1)\n",
      "Installing collected packages: threadpoolctl, scipy, joblib, scikit-learn\n",
      "Successfully installed joblib-1.3.2 scikit-learn-1.3.2 scipy-1.11.3 threadpoolctl-3.2.0\n",
      "\n",
      "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip available: \u001b[0m\u001b[31;49m22.3.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m23.3.1\u001b[0m\n",
      "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpip install --upgrade pip\u001b[0m\n",
      "Note: you may need to restart the kernel to use updated packages.\n",
      "              precision    recall  f1-score   support\n",
      "\n",
      "     Success       0.72      0.77      0.74       251\n",
      "     Failure       0.79      0.74      0.77       296\n",
      "\n",
      "    accuracy                           0.76       547\n",
      "   macro avg       0.76      0.76      0.76       547\n",
      "weighted avg       0.76      0.76      0.76       547\n",
      "\n"
     ]
    }
   ],
   "source": [
    "%pip install scikit-learn\n",
    "sns.set_theme(style=\"whitegrid\")\n",
    "\n",
    "# classification accuracy of success vs. manual success\n",
    "\n",
    "predicted = task_df['success'].values.astype(int)\n",
    "manual = task_df['manual_success'].values.astype(int)\n",
    "\n",
    "from sklearn.metrics import confusion_matrix\n",
    "from sklearn.metrics import classification_report\n",
    "from sklearn.metrics import accuracy_score\n",
    "\n",
    "print(classification_report(manual, predicted, target_names=['Success', 'Failure']))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[194,  57],\n",
       "       [ 76, 220]])"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "confusion_matrix(manual, predicted)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "testing-agent",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.10"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
